package cn.tedu.csmall.product.webapi.mapper;

import cn.tedu.csmall.pojo.entity.Category;
import cn.tedu.csmall.pojo.vo.CategoryDetailsVO;
import cn.tedu.csmall.pojo.vo.CategorySimpleListItemVO;
import cn.tedu.csmall.pojo.vo.CategorySimpleVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 处理“类别”数据的持久层接口
 */
@Repository
public interface CategoryMapper  {

    /**
     * 插入“类别”数据
     * @param category 类别
     * @return 受影响的行数
     */
    int insert(Category category);

    /**
     *根据"类别"id修改是否为父级"类别"
     * @param id        "类别"id
     * @param isParent  是否为父级类别  1=是 0=否
     * @return  受影响的行数
     */
    int updateIsParentById(@Param("id") Long id,@Param("isParent")Integer isParent);

    /**
     * 根据“类别”名称查询“类别”的简单信息
     * @param name “类别”名称
     * @return “类别”的简单信息
     */
    CategorySimpleVO getByName(String name);

    /**
     * 根据"类别"id查询"类别"信息
     * @return 受影响的行数
     */
    CategorySimpleVO getById(Long id);

    /**
     * 根据父级类别查询其所有的子集类别
     * @param Parent 父级类别的id
     * @return 受影响的行数
     */
    List<CategorySimpleListItemVO> listByParentId(Long Parent);

    /**
     * 根据"类别"id查询类别详细信息
     * @param id 类别的id
     * @return 受影响的行数
     */
    CategoryDetailsVO getDetailsById(Long id);


    /**
     * 查询所有“类别”
     * @return 所有“类别”的列表
     */
    List<CategoryDetailsVO> list();


    /**
     * 根据id修改类别是否禁用
     * @return 受影响的行数
     */
    int updateEnableById( @Param("id") Long id,@Param("isDisplay")Integer enable);



}
